home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / OpenDoc / OpenDoc Development / Debugging Support / OpenDoc Source Code / Utilities / Interfaces / MemDebg.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-22  |  1.8 KB  |  80 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        MemDebg.h
  3.  
  4.     Contains:    Memory management debugging routines
  5.  
  6.     Owned by:    Jens Alfke
  7.  
  8.     Copyright:    © 1993 - 1995 by Apple Computer, Inc., all rights reserved.
  9.  
  10. */
  11.  
  12.  
  13. #ifndef _MEMDEBG_
  14. #define _MEMDEBG_
  15. #pragma once
  16.  
  17. #ifndef _MEMMGR_
  18. #include "MemMgr.h"
  19. #endif
  20.  
  21.  
  22. #ifdef __cplusplus
  23.     class SOMObject;
  24.     class StackCrawl;
  25.     #define OPTIONAL    =0
  26. #else
  27.     #include <somobj.h>
  28.     typedef int StackCrawl;
  29.     #define OPTIONAL
  30. #endif
  31.  
  32.  
  33. #ifdef __cplusplus
  34. extern "C" {
  35. #endif
  36.  
  37. #pragma lib_export on
  38.  
  39.  
  40. void        MMBeginMemValidation( void );
  41. void        MMEndMemValidation( void );
  42. void        MMBeginHeapChecking( void );
  43. void        MMEndHeapChecking( void );
  44.  
  45. MMBoolean    MMValidatePtr( ConstMMBlock, MMBoolean validateHeap, const char *operation OPTIONAL );
  46. MMBoolean    MMValidateObject( const SOMObject *o );
  47. MMBoolean    MMValidateHandle( MMHandle );
  48.  
  49. MMBoolean    MMDoesHeapExist( MemHeap *heap );
  50. MMBoolean    MMValidateHeap( MemHeap *heapID, const void* ptr OPTIONAL );
  51. MMBoolean    MMValidateAllHeaps( void );
  52.  
  53. void        MMGetHeapInfo( MemHeap *heapID,
  54.                             const char* *name, size_t *allocated, size_t *free,
  55.                             size_t *nBlocks, size_t *nObjects );
  56.  
  57. typedef MMBoolean (*MMBlockInfoProc)( ConstMMBlock, size_t size, MMBoolean isObject, void *refCon );
  58.  
  59. void        MMWalkHeap( MemHeap *heapID, MMBlockInfoProc, void *refCon );
  60.  
  61. MMBoolean    MMFindBlockContaining( const void *start, const void *end,
  62.                     const void* *blockStart, const void* *blockEnd );
  63. MMBoolean    MMValidateMemoryRange( const void *start, const void *end );
  64.  
  65. MMBoolean    MMTrackStackCrawls( MMBoolean track );
  66. StackCrawl*    MMGetBlockStackCrawl( const void *block, long *flags );
  67. void        MMSetBlockStackCrawl( const void *block, StackCrawl*, long flags );
  68.  
  69. void        MMBeginLeakChecking( void );
  70. void        MMEndLeakChecking( void );
  71.  
  72.  
  73. #pragma lib_export off
  74.  
  75. #ifdef __cplusplus
  76. }
  77. #endif
  78.  
  79. #endif /*_MEMDEBG_*/
  80.